ci: SQL E2E over all three VGI transports (subprocess/http/unix)#1
Merged
Conversation
Turn the integration job into a transport matrix — the same test/sql/*.test suite now runs over subprocess (stdio), http, and unix on both ubuntu and macos. - ci/run-integration.sh: parameterize by $TRANSPORT (default subprocess). http boots `vgi-explain --http --port 0 --port-file <f>` (cwd = stage dir) and discovers the port via the port-file, then sets VGI_EXPLAIN_WORKER=http://127.0.0.1:<port>; unix boots `vgi-explain --unix <sock>` and sets unix://<sock>. The http leg injects `INSTALL httpfs FROM core; LOAD httpfs;` after each `LOAD vgi;` (the vgi HTTP transport rides DuckDB's httpfs). Added the silent-skip guard (the runner SKIPs "HTTP"/"Unable to connect" errors as a fake pass) and an EXIT-trap that preserves the real exit code. Fixture staging preserved. - .github/workflows/ci.yml: integration job becomes transport x os matrix; named "SQL E2E (<transport>) on <os>". waitress arrives transitively via the vgi-python[http] main dep, so the existing `uv sync --frozen --extra dev` already covers http; libomp brew step preserved for macOS. test + lint jobs unchanged. - ci/README.md: document the transport matrix + silent-skip guard. All three legs pass locally (subprocess/unix: 46 assertions, http: 50 — +4 from the injected httpfs INSTALL/LOAD). No streaming tests gated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Turn the integration job into a transport matrix so the full
test/sql/*.testsuite runs over subprocess (stdio), http, and unix on both ubuntu and macos.Changes
$TRANSPORT(defaultsubprocess).http: bootsvgi-explain --http --port 0 --port-file <f>(cwd = stage dir), discovers the port via the port-file, setsVGI_EXPLAIN_WORKER=http://127.0.0.1:<port>, and injectsINSTALL httpfs FROM core; LOAD httpfs;after eachLOAD vgi;(the vgi HTTP transport rides DuckDB's httpfs).unix: bootsvgi-explain --unix <sock>, setsVGI_EXPLAIN_WORKER=unix://<sock>.HTTP/Unable to connecterrors as a fake green) and an EXIT-trap that preserves the real exit code. Parquet fixture staging preserved.transport × osmatrix, namedSQL E2E (<transport>) on <os>. waitress arrives transitively via thevgi-python[http]main dep, so the existinguv sync --frozen --extra devalready covers http; macOS libomp step preserved.test/lintjobs unchanged.Streaming
All three functions (
shap_valuestable-in-out,shap_base_valuesource,feature_importancebuffering) work over stateless HTTP unchanged — each drains within a single tick andDrainStatealready extendsArrowSerializableDataclass. No tests gated.Local: subprocess/unix = 46 assertions, http = 50 (+4 from injected httpfs).
🤖 Generated with Claude Code